package windbell.domain.risk.impl;

import edu.fudan.mylang.pf.BaseDAOService;
import edu.fudan.mylang.pf.IObjectFactory;
import java.util.Collection;
import org.eclipse.xtext.xbase.lib.ObjectExtensions;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import windbell.domain.risk.RiskCheckTemplateItem;
import windbell.domain.risk.RiskCheckTemplateItemDAO;
import windbell.domain.risk.impl.RiskCheckTemplateItemImpl;

@Service("windbell.domain.risk.RiskCheckTemplateItemDAO")
public class RiskCheckTemplateItemDAOImpl extends BaseDAOService<RiskCheckTemplateItem> implements RiskCheckTemplateItemDAO {
  @Autowired
  private IObjectFactory entities;
  
  public RiskCheckTemplateItem create(final Procedure1<? super RiskCheckTemplateItem> init) {
    RiskCheckTemplateItem riskCheckTemplateItem=RiskCheckTemplateItemImpl.create(getObjectFactory());
    
    final Procedure1<RiskCheckTemplateItem> _function = new Procedure1<RiskCheckTemplateItem>() {
        public void apply(final RiskCheckTemplateItem it) {
          init.apply(it);
        }
      };
    RiskCheckTemplateItem _doubleArrow = ObjectExtensions.<RiskCheckTemplateItem>operator_doubleArrow(riskCheckTemplateItem, _function);
    return _doubleArrow;
  }
  
  public void delete(final RiskCheckTemplateItem item) {getObjectFactory().delete(item);
    
  }
  
  public Collection<RiskCheckTemplateItem> allItems() {
    Collection<RiskCheckTemplateItem> _all = this.entities.<RiskCheckTemplateItem>all(RiskCheckTemplateItem.class);
    return _all;
  }
}
